package com.mavenq.fly.utils.excelv4.config;

import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;

/**
 * Excel 导出配置类
 */
public class ExcelExportConfig {
    // 样式配置
    private IndexedColors headerBgColor = IndexedColors.SKY_BLUE;
    private IndexedColors headerFontColor = IndexedColors.WHITE;
    private short headerFontSize = 14;
    private boolean headerBold = true;
    private HorizontalAlignment headerAlignment = HorizontalAlignment.CENTER;
    private HorizontalAlignment dataAlignment = HorizontalAlignment.LEFT;
    private BorderStyle headerBorderStyle = BorderStyle.MEDIUM;
    private BorderStyle dataBorderStyle = BorderStyle.THIN;
    private boolean wrapText = true;
    
    // 尺寸配置
    private short headerRowHeight = 500;
    private short dataRowHeight = 400;
    private int defaultColumnWidth = 15;
    private int minColumnWidth = 8;
    private int maxColumnWidth = 50;
    private boolean autoSizeColumns = true;

    // Getter 和 Setter 方法
    public IndexedColors getHeaderBgColor() { return headerBgColor; }
    public void setHeaderBgColor(IndexedColors headerBgColor) { this.headerBgColor = headerBgColor; }
    public IndexedColors getHeaderFontColor() { return headerFontColor; }
    public void setHeaderFontColor(IndexedColors headerFontColor) { this.headerFontColor = headerFontColor; }
    public short getHeaderFontSize() { return headerFontSize; }
    public void setHeaderFontSize(short headerFontSize) { this.headerFontSize = headerFontSize; }
    public boolean isHeaderBold() { return headerBold; }
    public void setHeaderBold(boolean headerBold) { this.headerBold = headerBold; }
    public HorizontalAlignment getHeaderAlignment() { return headerAlignment; }
    public void setHeaderAlignment(HorizontalAlignment headerAlignment) { this.headerAlignment = headerAlignment; }
    public HorizontalAlignment getDataAlignment() { return dataAlignment; }
    public void setDataAlignment(HorizontalAlignment dataAlignment) { this.dataAlignment = dataAlignment; }
    public BorderStyle getHeaderBorderStyle() { return headerBorderStyle; }
    public void setHeaderBorderStyle(BorderStyle headerBorderStyle) { this.headerBorderStyle = headerBorderStyle; }
    public BorderStyle getDataBorderStyle() { return dataBorderStyle; }
    public void setDataBorderStyle(BorderStyle dataBorderStyle) { this.dataBorderStyle = dataBorderStyle; }
    public boolean isWrapText() { return wrapText; }
    public void setWrapText(boolean wrapText) { this.wrapText = wrapText; }
    public short getHeaderRowHeight() { return headerRowHeight; }
    public void setHeaderRowHeight(short headerRowHeight) { this.headerRowHeight = headerRowHeight; }
    public short getDataRowHeight() { return dataRowHeight; }
    public void setDataRowHeight(short dataRowHeight) { this.dataRowHeight = dataRowHeight; }
    public int getDefaultColumnWidth() { return defaultColumnWidth; }
    public void setDefaultColumnWidth(int defaultColumnWidth) { this.defaultColumnWidth = defaultColumnWidth; }
    public int getMinColumnWidth() { return minColumnWidth; }
    public void setMinColumnWidth(int minColumnWidth) { this.minColumnWidth = minColumnWidth; }
    public int getMaxColumnWidth() { return maxColumnWidth; }
    public void setMaxColumnWidth(int maxColumnWidth) { this.maxColumnWidth = maxColumnWidth; }
    public boolean isAutoSizeColumns() { return autoSizeColumns; }
    public void setAutoSizeColumns(boolean autoSizeColumns) { this.autoSizeColumns = autoSizeColumns; }
}